The present invention relates generally to Global Navigation Satellite System (GNSS) receivers and, in particular, to receivers that operate with Galileo alternate binary offset carrier (AltBOC) satellite signals.
Global navigation satellite system (GNSS) receivers, such as Galileo receivers, determine their global position based on signals received from orbiting GNSS satellites. The GNSS satellites transmit signals using at least one carrier, each carrier being modulated by at least a binary pseudorandom (PRN) code, which consists of a seemingly random sequence of ones and zeros that is periodically repeated. The ones and zeros in the PRN code are referred to as “code chips” and the transitions in the code from one to zero or zero to one, which occur at “code chip times” are referred to as “code chip transitions”. Each GNSS satellite uses a unique PRN code, and thus, a GNSS receiver can associate a received signal with a particular satellite by determining which PRN code is included in the signal.
The GNSS receiver calculates the difference between the time a satellite transmits its signal and the time that the receiver receives the signal. The receiver then calculates its distance, or “pseudo-range” from the satellite based on the associated time difference. Using the pseudo-ranges from at least four satellites, the receiver determines its global position.
To determine the time difference, the GNSS receiver synchronizes a locally generated PRN code with the PRN code in the received signal by aligning the code chips in each of the codes. The GNSS receiver then determines how much the locally-generated PRN code is shifted in time from the known timing of the satellite PRN code at the time of transmission, and calculates the associated pseudo-range. The more closely the GNSS receiver aligns the locally-generated PRN code with the PRN code in the received signal, the more precisely the GNSS receiver can determine the associated time difference and pseudo-range and, in turn, its global position.
The code synchronization operations include acquisition of the satellite PRN code and tracking the code. To acquire the PRN code, the GNSS receiver generally makes a series of correlation measurements that are separated in time by a code chip. After acquisition, the GNSS receiver tracks the received code. The GNSS receiver generally makes “Early-Minus-Late” correlation measurements, i.e., measurements of the difference between (i) a correlation measurement associated with the PRN code in the received signal and an early version of the locally-generated PRN code, and (ii) a correlation measurement associated with the PRN code in the received signal and a late version of the local PRN code. The GNSS receiver then uses the early-minus-late measurements in a delay lock loop (DLL), which produces an error signal that is proportional to the misalignment between the local and the received PRN codes. The error signal is used, in turn, to control the PRN code generator, which shifts the local PRN code essentially to minimize the DLL error signal.
The GNSS receiver also typically aligns the satellite carrier with a local carrier using correlation measurements associated with a punctual version of the local PRN code. To do this the receiver uses a carrier tracking phase lock loop (PLL).
The European Commission and the European Space Agency (ESA) are developing a GNSS known as Galileo. Galileo satellites will transmit two signals in the E5a band (about 1176.45 MHz) and two signals in the E5b band (about 1207.14 MHz) as a composite signal with a center frequency of about 1191.795 MHz and a bandwidth of at least 70 MHz, using a AltBOC modulation. The generation of the AltBOC signal is described in the document of the Galileo Signal Task Force of the European Commission “Status of Galileo Frequency and Signal Design”, G. W. Hein, J. Godet, J. L. Issler, J. C. Martin, P. Erhard, R. Lucas-Rodriguez and T. Pratt, 25 Sep. 2002, published at the following address: http://europa.eu.int/comm/dgs/energy_transport/galileo/documents/technical_en.htm. Like the GPS satellites, the Galileo satellites each transmit unique PRN codes and a Galileo receiver can thus associate a received signal with a particular satellite. Accordingly, the Galileo receiver determines respective pseudo-ranges based on the difference between the times the satellites transmit the signals and then times the receiver receives the AltBOC signals.
A standard linear offset carrier (LOC) modulates a time domain signal by a sine wave sin(ω0t), which shifts the frequency of the signal to both an upper sideband and a corresponding lower sideband. The BOC modulation accomplishes the frequency shift using a square wave, or sign(sin(ω0t)), and is generally denoted as BOC(fs, fc), where fs is the subcarrier (square wave) frequency and fc is the spreading code chipping rate. The factors of 1.023 MHz are usually omitted from the notation for clarity so a BOC (15.345 MHz, 10.23 MHz) modulation is denoted BOC (15,10).
The modulation of a time domain signal by a complex exponential ejω0t shifts the frequency of the signal to the upper sideband only. The goal of the AltBOC modulation is to generate in a coherent manner the E5a and E5b bands, which are respectively modulated by complex exponentials, or subcarriers, such that the signals can be received as a wideband “BOC-like signal”. The E5a and E5b bands each have associated in-phase (I) and quadrature (Q) spreading, or PRN, codes, with the E5a codes shifted to the lower sideband and the E5b codes shifted to the upper sideband. The respective E5a and E5b quadrature carriers are modulated by dataless pilot signals, and the respective in-phase carriers are modulated by both PRN codes and data signals.
The AltBOC modulation offers the advantage that the E5a (I and Q) and E5b (I and Q) signals can be processed independently as traditional BPSK(10) (Binary Phase-Shift Keying) signals, or together, leading to tremendous performances in terms of tracking noise and multipath.
For the derivation of the demodulation principle of the AltBOC modulation, it is sufficient to approximate the base-band AltBOC signal by its AltLOC (Alternate Linear Offset Carrier) counterpart:s(t)=d1(t)·c1(t)·ejωst+d2(t)·c2(t)·e−jωst+c3(t)·ej(ωst+π/2)+c4(t)·e−j(ωst−π/2)  (1)                where:        c1(t) is the PRN code of the E5b-data component (E5bI) and d1(t) is the corresponding bit modulation;        c2(t) is the PRN code of the E5a-data component (E5aI) and d2(t) is the corresponding bit modulation;        c3(t) is the PRN code of the E5b-pilot component (E5bQ);        c4(t) is the PRN code of the E5a-pilot component (E5aQ);        the exponential factors represent the subcarrier modulation of E5a and E5b;        ωs is the side-band offset pulsation: ωs=2πfs, with fs=15.345 MHz.        
In reality, s(t) contains additional product terms and the subcarrier exponentials are quantized. This effect will not be explicitly included in the equations for the sake of clarity. s(t) is modulated on the E5 carrier at 1191.795 MHz.
Most previous publications present AltBOC from a satellite payload perspective, i.e., from a transmitter viewpoint. The receiver side processing has received very little attention so far.
The publication “Comparison of AWGN Code Tracking Accuracy for Alternative-BOC, Complex-LOC and Complex-BOC Modulation Options in Galileo E5-Band, M. Soellner and Ph. Erhard, GNSS 2003, April 2003, discloses the principle of a AltBOC receiver architecture for tracking the AltBOC pilot component, as shown in FIG. 1.
In FIG. 1, the AltBOC receiver receives over an antenna 1 a signal that includes AltBOC composite codes transmitted by all of the satellites that are in view. The received signal is applied to a RF/IF stage 2 that, in a conventional manner, converts the received signal RF to an intermediate frequency IF signal that has a frequency which is compatible with the other components of the receiver, filters the IF signal through a IF band-pass filter that has a band-pass at the desired center carrier frequency, and samples the filtered IF signal at a rate that satisfies the Nyquist theorem so as to produce corresponding digital in-phase (I) and quadrature (Q) signal samples in a known manner. The bandwidth of the filter should be sufficiently wide to allow the primary harmonic of the AltBOC composite pilot code to pass, or approximately 51 MHz. The wide bandwidth results in relatively sharp code chip transitions in the received code, and thus, fairly well defined correlation peaks.
The AltBOC receiver comprises a local carrier oscillator 4, for example of the NCO type (Numerically Controlled Oscillator), synchronized with the IF frequency to generate a phase rotation angle on M bits which is applied to a phase rotator 3 receiving the IF signal samples on N bits. The phase rotated signal samples on N bits delivered by the phase rotator are applied to three complex correlators, each comprising a signal multiplier 10, 11, 12 and an integrator 13, 14, 15. The integrators sum the signal samples received during a predefined integration time Tint.
The AltBOC receiver further comprises another local oscillator 5 of the NCO type synchronized with the code chipping rate fc, and which drives a complex AltBOC code generator 6 for locally generating complex PRN pilot codes for a given satellite. The generated pilot codes pass through a multi-bit delay line 7 comprising three cells E, P, L producing respectively early, prompt and late replicas of the local PRN codes which are applied respectively to an input of the multipliers 10, 11, 12.
The signals CE, CP and CL delivered by the integrators 13, 14, 15 are then used to generate a carrier phase and code error signals which are used to drive the NCO oscillators 4, 5.
The AltBOC code generator 6 presents the drawback of being complex and multi-bit. Namely, it produces a quantized version of the Alt-LOC base-band signal (assuming only the pilot component is tracked) in the following form:c3(t)·e−j(ωst+π/2)+c4(t)·ej(ωst−π/2)  (2)
Such a complex base-band signal is cumbersome to generate. The architecture shown in FIG. 1 also implies that all the operators (delay line, multipliers and integrators) operate on complex multi-bit numbers.